package ptz

import "github.com/use-go/onvif/xsd/onvif"

type ContinuousMove struct {
	XMLName      string               `xml:"tptz:ContinuousMove"`
	ProfileToken onvif.ReferenceToken `xml:"tptz:ProfileToken"`
	Velocity     PTZSpeed             `xml:"tptz:Velocity"`
}

type PTZSpeed struct {
	PanTilt onvif.Vector2D `xml:"onvif:PanTilt"`
}

type AbsoluteZoomMove struct {
	XMLName      string               `xml:"tptz:AbsoluteMove"`
	ProfileToken onvif.ReferenceToken `xml:"tptz:ProfileToken"`
	Position     ZoomPosition         `xml:"tptz:Position"`
	Speed        onvif.PTZSpeed       `xml:"tptz:Speed"`
}

type ZoomPosition struct {
	Zoom onvif.Vector1D `xml:"onvif:Zoom"`
}

type RelativeMove struct {
	XMLName      string               `xml:"tptz:RelativeMove"`
	ProfileToken onvif.ReferenceToken `xml:"tptz:ProfileToken"`
	Translation  ZoomPosition         `xml:"tptz:Translation"`
	Speed        RelativePTZSpeed     `xml:"tptz:Speed"`
}

type RelativePTZSpeed struct {
	Zoom onvif.Vector1D `xml:"onvif:Zoom"`
}
